/*
    XTU OJ: 1271
    by: fifth_light
*/

#include <stdio.h>
#include <string.h>

char column[100];
char row[100];

int calc_grids(int rows, int columns) {
    int sum = 0;
    // 先计算每行
    for (int y = 0; y < columns; y++) {
        // 该行无黑色方块
        if (column[y] == 0) {
            // 填充该行
            sum += rows;
        }
    }
    // 再来填每列
    for (int x = 0; x < rows; x++) {
        // 该列无黑色方块
        if (row[x] == 0) {
            // 填充该列的每行
            for (int y = 0; y < columns; y++) {
                // 该行有黑色方块
                if (column[y] == 1) {
                    // 填充该格
                    sum += 1;
                }
            }
        }
    }
    return sum;
}

int main(void) {
    int t;
    scanf("%d", &t);
    for(int i = 0; i < t; i++) {
        int m, n, k;
        scanf("%d%d%d", &m, &n, &k);
        memset(row, 0, sizeof(row));
        memset(column, 0, sizeof(column));
        for (int j = 0; j < k; j++) {
            int x, y;
            scanf("%d%d", &x, &y);
            row[x - 1] = 1;
            column[y - 1] = 1;
        }
        printf("%d\n", calc_grids(m, n));
    }
    return 0;
}
